단어 벡터화의 두 가지 길(Sparse, Dense)

'단어를 숫자로 바꾸는 기술(벡터화)'은 크게 두 가지 방식으로 나뉩니다.

1. 단순 벡터화 (Sparse, 희소)

이 방식들은 단어의 의미를 파악하는 것이 아니라, 단순히 통계적 정보(등장 유무, 횟수 등)를 숫자로 나타내는 데 중점을 둡니다.

1. 원-핫 인코딩 (One-Hot Encoding)

전체 단어장에서 각 단어에 고유한 번호를 부여하고,
해당 번호의 위치만 1로, 나머지는 모두 0으로 표시하는 방식입니다.

2. Bag-of-Words (BoW)

단어들의 순서는 무시하고,
각 단어가 문장(또는 문서)에 몇 번 등장했는지
횟수를 세어 벡터로 만듭니다.

3. TF-IDF

BoW처럼 단어 횟수를 세지만, 모든 문서에 흔하게 등장하는 단어
(ex: a, the, 은, 는)에는 낮은 가중치를, 특정 문서에만 자주 등장하는 중요한 단어에는 높은 가중치를 부여합니다.

2. 워드 임베딩 (Dense, 밀집)

단어의 의미와 관계를 벡터 안에 직접 녹여내는 기술입니다.
의미가 비슷한 단어는 벡터 값도 비슷해집니다.

1. 정적 임베딩 (Static Embedding)

어떤 문장에 쓰이든,
단어 하나는 언제나 동일한 의미의 벡터값을 가집니다.

2. 동적 / 문맥적 임베딩
(Dynamic / Contextual Embedding)

같은 단어라도 문맥에 따라 여러 의미를 가질 수 있다는 점을
반영하여, 문장에 따라 벡터값이 동적으로 변합니다.


한눈에 보는 정리표

구분 방식 핵심 아이디어 의미/문맥 반영 결과물 형태
단순 벡터화
(통계 기반)
원-핫 인코딩 단어의 존재 여부를 0과 1로 표현 희소 벡터 (고차원)
Bag-of-Words 문서 내 단어의 등장 횟수를 표현 희소 벡터 (고차원)
TF-IDF 단어의 중요도(가중치)를 계산하여 표현 희소 벡터 (고차원)
워드 임베딩
(의미 기반)
Word2Vec, GloVe (정적) 주변 단어 기반으로 고정된 의미를 벡터에 압축 의미 O / 문맥 X 밀집 벡터 (저차원)
BERT, GPT (동적) 문장 전체 문맥에 따라 동적으로 변하는 의미를 표현 의미 O / 문맥 O 밀집 벡터 (저차원)